Systems and methods for application programming interfaces for shipping services

ABSTRACT

Systems and methods are disclosed for providing shipping services information over a network by providing instructions to a first server from a second server which permits the first server to access the shipping services information residing on the second server over the network. The first server receives a request by a client for the shipping services information at the second server. The second server provides the requested shipping services information to the client through the first server.

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims priority on U.S. Provisional ApplicationSerial No. 60/227,903, filed Aug. 25, 2000, by Stuart Willoughby andentitled SYSTEMS AND METHODS FOR APPLICATION PROGRAMMING INTERFACES FORSHIPPING SERVICES, the entire disclosure of which is incorporated hereinby reference.

DESCRIPTION OF THE INVENTION

[0002] 1 Field of the Invention

[0003] This invention relates to providing an internet customer withinformation relative to shipping services using application programminginterfaces (“API's” or “Web Tools API”) supplied by the United StatesPostal Service (“USPS”). The API's are designed to allow electroniccommerce (“e-commerce entities”) to generate requests and to send themover the network to servers for access to USPS shipping information.E-commerce entities may include multi-carriers, electronic retailers(“e-tailers”), electronic shopping malls, auction houses, or third partyvendors that buy in broker services over a network. The network ispreferably the Internet; however, any type of network known to thoseskilled in the art may be used.

[0004] 2. Background of the Invention

[0005] Currently, a person desiring to send a package to a recipient maytake the package to a mailing point where she is provided informationabout the various shipping options and costs of shipping. The personselects a shipping option, pays the mailer for the cost of shipping,receives a label that is applied to the package, and the package is thenplaced into a mail stream. One such example of a mail stream is the mailstream provided by the USPS. Alternatively, a person may contact amailing company. The mailing company provides to the person informationabout the various shipping options and costs of shipping. The personselects a shipping option, pays the mailing company for the cost ofshipping, and gives the package to a mailer associated with the mailingcompany. The mailer then generates a label and applies it to thepackage. Thereafter, the mailer places the package into the mail stream.Either way, the person must wait to be informed of the cost of mailingthe package and/or wait to pay for the mailing label before the packagemay be sent.

[0006] With the advent of e-commerce, electronic shoppers (“e-shoppers”)may make purchases from e-commerce entities over the network. It isadvantageous to the e-commerce entities to have e-shoppers to stay ontheir web sites and buy more items, instead of having to make separatearrangements for receiving information for shipping or returning apurchased item. It is advantageous to the e-shoppers to have the abilityto receive shipping labels electronically for application to a packageditem or to request that an e-commerce entity package and ship apurchased item.

[0007] It is accordingly an object of an embodiment of the invention toprovide e-commerce entities with access to USPS shipping servicesinformation. The e-commerce entities may in turn provide suchinformation to e-shoppers, thereby allowing e-shoppers to request andreceive information about the various shipping options and the cost ofmailing an item. In addition, the e-shoppers may purchase mailinglabels, delivery confirmation labels, or request merchandise returnlabels. The shipping options may include services such as Express Mail®,Priority Mail®, and Parcel Post™, etc. The shipping services informationmay include domestic and international postal rates, service standards,addressing information, mailing labels, merchandise return labels,delivery confirmation labels, etc.

[0008] This is achieved by providing to e-commerce entities a collectionof API's, which provide access to servers having USPS shippinginformation. The servers may include, for example, one or more USPSservers. These API's may be coded in a language which is independent ofoperating system and hardware implementation. Preferably, the API's areimplemented in Extensible Markup Language (“XML”); however, they are notlimited to language and could be written in any programming languageknown to those skilled in the art.

[0009] An e-commerce entity may utilize the API's to make a request to aUSPS server over the network for shipping information. For convenience,the USPS server will be referred to herein as the “Web Tools APIServer.” The Web Tools API server receives the request, generates aresponse to the request, and sends the response over the network to thee-commerce entity. The response may include the requested shippinginformation.

SUMMARY OF THE INVENTION

[0010] In accordance with the invention, systems and methods aredisclosed for providing shipping services information over a network byproviding instructions to a first server from a second server whichpermits the first server to access the shipping services informationresiding on the second server over the network. The first serverreceives a request from a client for the shipping services informationresiding on the second server. Thereafter, the second server providesthe requested shipping services information from the second server tothe client through the first server.

[0011] It is to be understood that both the foregoing generaldescription and the following detailed description are exemplary andexplanatory only and are not restrictive of the invention, as claimed.

[0012] The accompanying drawings, which are incorporated in andconstitute a part of this specification, illustrate embodiments of theinvention and together with the description, serve to explain theprinciples of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 is a block diagram of a system consistent with the presentinvention.

[0014]FIG. 2 is a block diagram of an end-user/client system, e-commerceserver system, and Web Tools API server system consistent with thepresent invention.

[0015]FIG. 3 is a flowchart showing a method for providing shippingservices information over a network.

[0016]FIG. 4 is a block diagram showing data exchange occurring within asystem for a merchandise return API.

[0017]FIG. 4a is a diagram of a merchandise return label including adelivery confirmation barcode.

[0018]FIG. 5 is a flowchart showing a method for providing an electronicmerchandise return label.

[0019]FIG. 6 is a block diagram showing data exchange occurring within asystem for a rate calculation API.

[0020]FIG. 7 is a flowchart showing a method for providing ratecalculation information.

[0021]FIG. 8 is a block diagram showing data exchange occurring within asystem for a tracking/confirmation API.

[0022]FIG. 9 is a flowchart showing a method for providingtracking/confirmation information.

[0023]FIG. 10 is a block diagram showing data exchange occurring withina system for a service/commitment standards API.

[0024]FIG. 11 is a flowchart showing a method for providingservice/commitment standards information.

[0025]FIG. 12 is a block diagram showing data exchange occurring withina system for a delivery confirmation service API.

[0026]FIG. 13 is a flowchart showing a method for providing a deliveryconfirmation label.

[0027]FIG. 14 is a block diagram showing data exchange occurring withina system for a courtesy reply label API.

[0028]FIG. 15 is a flowchart showing a method for providing a courtesyreply label.

[0029]FIG. 16 is a block diagram showing data exchange occurring withina system for an address information service API.

[0030]FIG. 17 is a flowchart showing a method for providing addressinformation.

DESCRIPTION OF THE EMBODIMENTS

[0031] Reference will now be made in detail to an exemplary embodimentof the invention, an example of which is illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts. Forconvenience, an e-shopper will be described herein as an “end-user.”

[0032]FIG. 1 is a block diagram of an exemplary system with which theinvention may be implemented. System 100 may include a plurality ofend-user/client systems 101, a network 110, a plurality of e-commerceserver systems 120, one or more Web Tools API server systems 130, andone or more shipping information databases 150. In addition, system 100may optionally include one or more tracking servers 140 for tracking thedelivery status of mailed items in a mail stream, and one or moretracking databases 160. Network 110 may include, for example, a LocalArea Network (LAN), a Wide-Area Network (WAN), a wireless network, theInternet, an intranet, and/or any other network or communication mediumknown to one of ordinary skill in the relevant art.

[0033]FIG. 2 is a block diagram of an end-user/client system 101,e-commerce server system 120, and Web Tools API server system 130consistent with the present invention. End-user/client system 101 mayinclude a processor (“CPU”) 225, which connects over a bus 217 to amemory 200, a mass storage 220, and a network interface module 230.Memory 200 may include an user interface module 205, a browser softwaremodule 210, and an operating system 215.

[0034] Operation of end-user/client system 101 is generally controlledand coordinated by operating system software 215. Operating system 215controls allocation of system resources and performs tasks, such asmemory management, process scheduling, networking, and services, amongother things.

[0035] Mass storage 220 may include a computer-readable medium, such asa disk drive and a compact disc (“CD”) drive or a read/write CD drive.From the CD drive or the read/write CD drive, software and data may beloaded onto the disk drive, which may then be copied into memory 200.Similarly, software and data in memory 200 may be copied onto the diskdrive, which may then be loaded onto a read/write CD drive.

[0036] Network interface module 230 may include hardware and softwarefor sending and receiving data over network 110. End-user/client system101 may communicate with an e-commerce server system 120 over network110 through network interface module 230.

[0037] E-commerce server system 120 may include a processor (“CPU”) 257,which connects over a bus 247 to a memory 235, a mass storage 255, and anetwork interface module 260. Memory 235 may include one or more APImodules 240 in the Web Tools API suite integrated with an e-commerceentity's application software, and operating system 245, each of whichwill be described below in detail.

[0038] Operation of e-commerce server system 120 is generally controlledand coordinated by operating system software 245. Operating system 245controls allocation of system resources and performs tasks, such asmemory management, process scheduling, networking, and services, amongother things.

[0039] Mass storage 255 may include a computer-readable medium, such asa disk drive and a CD drive or a read/write CD drive. From the CD driveor the read/write CD drive, software and data may be loaded onto thedisk drive, which may then be copied into memory 235. Similarly,software and data in memory 235 may be copied onto the disk drive, whichmay then be loaded onto a read/write CD drive.

[0040] Network interface module 260 may include hardware and softwarefor sending and receiving data over network 110. E-commerce serversystem 120 may communicate with a plurality of end-user/client systems101 and/or one or more Web Tools API server systems 130 over network 110through network interface module 260. Alternatively, e-commerce serversystem 120 may communicate with one or more Web Tools API server systems130 over network 110 through a firewall 265 via network interface module260.

[0041] Web Tools API server system 130 may include a processor (“CPU”)293, which connects over a bus 275 to a memory 270, a mass storage 290,a network interface module 295, and one or more shipping informationdatabases 150. Memory 270 may include API server module 277, standardAPI modules 285, and operating system 280, each of which will bedescribed below in detail.

[0042] Operation of Web Tools API server system 130 is generallycontrolled and coordinated by operating system software 280. Operatingsystem 280 controls allocation of system resources and performs tasks,such as memory management, process scheduling, networking, and services,among other things.

[0043] Mass storage 290 may include a computer-readable medium, such asa disk drive and a CD drive or a read/write CD drive. From the CD driveor the read/write CD drive, software and data may be loaded onto thedisk drive, which-may then be copied into memory 270. Similarly,software and data in memory 270 may be copied onto the disk drive, whichmay then be loaded onto a read/write CD drive.

[0044] Network interface module 295 may include hardware and softwarefor sending and receiving data over network 110. Web Tools API serversystem 130 may communicate with a plurality of e-commerce server systems120 over network 110 through network interface module 295.Alternatively, Web Tools API server system 130 may communicate with aplurality of e-commerce server systems 120 over network 110 through afirewall 265 via network interface module 295. In addition, the WebTools API server system 130 may send and/or receive shipping informationto/from one or more shipping information databases 150. Optionally, theWeb Tools API server system 130 may communicate with one or moretracking servers 140 over network 110 through network interface module295 to request and receive information from one or more trackingdatabases 160.

[0045] In one example, an e-commerce entity may make a request to an APIprovider for one or more API modules in the Web Tools API suite. The APIprovider may include, for example, the USPS. The e-commerce entityregisters with the API provider and receives a username and password forconnecting to a Web Tools API Server 130. The API provider may send therequested API modules to the e-commerce entity by any known deliverymethod. For example, the API provider may send the requested API modulesby an email, or by placing the API modules on a CD or floppy disk andmailing them to the e-commerce entity. In another example, the APIprovider may access an API server module 277 on a Web Tools API server130 to send the requested API modules over a network 110 to ane-commerce server 120 specified by the e-commerce entity. Thereafter,the e-commerce entity may integrate the API modules with its applicationsoftware on one or more e-commerce servers 120 to generate ExtensibleMarkup Language (“XML”) requests to the Web Tools API server 130 forshipping information. The API modules may provide for processingmultiple requests within a single transaction.

[0046] Once the API modules are integrated with application software ofan e-commerce server 120, an end-user 101 may access the e-commerceserver 120 over a network 110 through a client system 101 and make arequest for information, for example, a request for a merchandise returnlabel. E-commerce server 120 generates an XML request based on therequest from the end-user. Thereafter, e-commerce server 120 sends therequest to the Web Tools API server 130. Web Tools API server 130receives the request and calls an appropriate standard API module 285 toprocesses the request. Once the request is processed, Web Tools APIserver 130 sends an XML response back to e-commerce server 120.E-commerce server 120 may send the XML response back to the end-user atclient system 101 through network 110. If e-commerce server 120 detectsan error condition in the XML response, it may notify the end-user ofthe error condition. Otherwise, e-commerce server 120 retrieves therequested information from the XML response and sends it to theend-user, in this example, the merchandise return label is sent to theend-user.

[0047]FIG. 3 is a flowchart showing a method for providing shippingservices information over a network. The discussion that follows is amore detailed description of the processing performed by e-commerceserver 120 and Web Tools API server 130. An e-commerce server 120receives a request from an end-user through a client system 101 (stage300). E-commerce server 120 generates an XML request based on therequest from the end-user (stage 310). The XML request may include a tagthat specifies a particular API in the standard API modules 285 to usein processing the request, and one or more tags that representinformation relevant for processing the request. The format of an XMLrequest for each API is described below in detail. In addition, the USPSmay provide to an e-commerce entity example integration source code thatmay be used by an e-commerce server 120 to generate XML requests.

[0048] Next, e-commerce server 120 may make a network connection to aWeb Tools API server 130 (stage 320). The USPS may provide to ane-commerce entity example integration source code that may be used by ane-commerce server 120 to-connect to a Web Tools API server 130.

[0049] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110 (stage 330). The Web Tools APIserver 130 receives the XML request and determines, based on the XMLrequest, which API within the standard API modules 285 to call toprocess the request. Next, API server module 277 calls the applicableAPI in the standard API modules 285 to process the request, and sends anXML response to the e-commerce server 120 through network 110.E-commerce server 120 receives the XML response from the Web Tools APIserver 130 through network 110 (stage 340). The XML response may includeone or more tags that specify a type for the response, and one or moretags that include the requested information. The format of an XMLresponse for each API is described below in detail.

[0050] E-commerce server 120 determines, based on the XML response,whether an error occurred during the processing of the XML request bythe Web Tools API server 130 (stage 350). If an error occurred (“Yes”),e-commerce server 120 generates an error status, based on the XMLresponse, and sends it to client system 101 through network 110 (stage370). Client system 101 may display the error status to the end-userthrough browser software module 210. Otherwise (“No”), e-commerce server120 may generate a reply response, based on the XML response, and sendit to client system 101 through network 110 (stage 360). Client system101 may display the reply response to the end-user through browsersoftware module 210 or user interface module 205. Alternatively,e-commerce server 120 sends the XML response received from Web Tools APIserver 130 to client system 101 through network 110.

[0051] FIGS. 4-17 describe API's that may be included in the Web ToolsAPI suite. However, the API's are not limited to the API's describedherein.

[0052]FIG. 4 is a block diagram showing data exchange occurring within asystem for a merchandise return API. Specifically, FIG. 4 shows anexample of the flow of information for a merchandise return API, whichis a merchandise return solution set up for e-commerce entity's thathave customers who need to return a package that they've purchased. Themerchandise return API has been specifically designed for e-commerceentities that elect to provide to their customers a pre-paid postagereturn label. This API facilitates returns by allowing e-commerceentities to request and receive a merchandise return label formerchandise return, which the e-commerce entity can provide to itscustomers or end-users through any known distribution medium, such asemail, regular mail, fax, etc.

[0053] As shown in. FIG. 4, an end-user accesses an e-commerce server120 over a network 110 through a client system 101 and makes a requestto return a purchased item to a retailer. E-commerce server 120 mayprovide to the end-user, based on information supplied by the end-user,a list of items that were purchased. The end-user may select from thelist one or more items to return. For purposes of this example, theend-user selects a single item. Thereafter, e-commerce server 120 maydetermine whether the end-user has permission to return the selecteditem, and if so, whether the item requires insurance for shipping. Ifthe end-user has permission to return the selected item to the retailer,e-commerce server 120 generates an XML request based on the informationsupplied by the end-user and the selected item.

[0054] The request includes, for example, the name and address of thecustomer who purchased the item, name and address of the retailer whosold the item, service type, permit information, Postage Due Unit(“PDU”) information, label image type, insurance value, package weight,return materials authorization (“RMA”), and mailing acknowledgement. Themailing acknowledgement is an optional service that provides a customerwith an acknowledgement when an item is returned/delivered to aretailer. The e-commerce entity may be required to register with theUSPS to receive a user ID and password to allow e-commerce server 120 toprovide a valid user ID and password in each XML request.

[0055] For example, the XML request includes the following tags: InputXML Tag Values Allowed Request <EMRSV2.0Request . . . Input tag exactlyas presented. User ID . . . USERID= Use user ID “userid” . . . providedwith registration. Password . . . PASSWORD= Use password “password”>provided with registration. Customer's <CustomerName> Maximum Namecharacters allowed: 32 Customer's <CustomerAddress> Maximum Addresscharacters allowed: 24 Customer's <CustomerCity> Maximum City charactersallowed: 21 Customer's <CustomerState> Maximum characters State allowed:2 Customer's <CustomerZip5> Input tag ZIP Code ® exactly as presented,not all caps. Maximum characters allowed: 5 Retailer's <RetailerName>Maximum Name characters allowed: 32 Retailer's <RetailerAddress> MaximumAddress characters allowed: 32 Post Office <PermitNumber> Input permitPermit number Number provided by your local post office. City Issuing<PermitIssuingPOCity> Maximum Post Office characters Permit allowed: 15State Issuing <PermitIssuingPOState> Maximum Post Office charactersPermit allowed: 2 ZIP Code ® of <PermitIssuingPOZip5> Input tag PostOffice exactly as Issuing Permit presented, not all caps. Maximumcharacters allowed: 5 Postage Due <PDUPOBox> Maximum Unit PO Boxcharacters allowed: 24 Postage Due <PDUCity> Maximum Unit Citycharacters allowed: 15 Postage Due <PDUState> Maximum Unit Statecharacters allowed: 2 Postage Due <PDUZip5> Input tag Unit ZIP exactlyas Code ® presented, not all caps. Maximum characters allowed: 5 PostageDue <PDUZip4> Input tag Unit ZIP exactly as Code ® + 4 presented, notall caps. Maximum characters allowed: 4 Service Type <ServiceType> Validentries Requested are: “First Class,” “Priority,” “Parcel Post,” “BoundPrinted Matter,” “Special Standard,” or “Library Rate.” Delivery<DeliveryConfirmation> The valid values Confirmation ™ are “True”Service or “False” Insurance <InsuranceValue> Enter numeric Desired bycurrency with Permit Holder dollars and cents (no dollar sign). Ifinsur- ance is not required, leave value blank. A value of “0.00” willresult in an error being returned. Unique Parcel <MailingAckPackageID>E-commerce Identification entity assign- Number able number. Maximumcharacters allowed: 24. Value entry is optional. Refer to “Mailing Ack-nowledgement” below. Package <WeightInPounds> Value must be Weight innumeric. Maximum Pounds characters allowed: 2. Package <WeightinOunces>Value must be Weight in numeric. Maximum Ounces characters allowed: 4.Return <RMA> Value entry Materials is optional. Authorization LabelImage <ImageType> Either of two Type values allowed: “TIF” or “PDF”

[0056] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110 (stage 330). Web Tools APIserver 130 receives the XML request, and may call a merchandise returnAPI module 285 to generate a merchandise return label based on the XMLrequest. The merchandise return label may, for example, be in PortableDocument Format (“PDF”) or Tagged Image File (“TIF”) format, which isdetermined by the value supplied in the Label Image Type tag in the XMLrequest. Next, merchandise return API module 285 generates an XMLresponse, which includes the merchandise return label. The merchandisereturn label may include forwarding information such as, address of thesender, address of a recipient, barcode, RMA, and an indication ofpre-paid postage.

[0057] For example, the XML response includes the following tags: OutputXML Tag Type of Response <EMRSV2.0Response> Zone <Zone> Image ofMerchandise Return Label <MerchandiseReturnLabel> Insurance Cost<InsuranceCost>

[0058] However, if Web Tools API server 130 detects an error conditionin processing a request from an e-commerce entity, the XML responseincludes information about the error. Thus, if Web Tools API server 130detects an error condition, it may generate an XML response with tagsthat may have the following format: <Error> <Number></Number><Source></Source> <Description></Description> <HelpFile></HelpFile><HelpContext></HelpContext> </Error>

[0059] The number tag includes an error number generated by Web ToolsAPI server 130. The source tag includes information about the sourcecode component and API that generated the error condition on Web ToolsAPI server 130. The description tag includes a description of the error.

[0060] After merchandise return API module 285 generates the XMLresponse, Web Tools API server 130 sends the XML response to thee-commerce server 120 through network 110. E-commerce server 120receives the XML response and extracts the merchandise return label.E-commerce server 120 may send the merchandise return label to clientsystem 101 through network 110. Client system 101 may display themerchandise return label to the end-user. The end-user may then printthe merchandise return label and attach it to the packaged item.Alternatively, e-commerce server 120 may fax the merchandise returnlabel to the end-user, email the merchandise return label to theend-user, or mail it to the end-user.

[0061]FIG. 4a is a diagram of a merchandise return label 410 generatedby Web Tools API server 130. As shown in FIG. 4a, the merchandise returnlabel 410 includes a return label 420 having forwarding information suchas, address of a sender 425, address of a recipient 445, deliveryconfirmation barcode 430, RMA 440, and an indication of pre-paid postage435. The postage for the return label is pre-paid by the e-commerceentity or the retailer, so the end-user is not required to apply postageto the return label. Optionally, the merchandise return label mayinclude a mailing acknowledgment form 450 coupled to the return label420 and a mailing acknowledgement identification number 415 is includedon the mailing acknowledgment form 450 and the return label 420.

[0062]FIG. 5 is a flowchart showing a method for providing an electronicmerchandise return label. As shown in FIG. 5, an end-user accesses ane-commerce server 120 through a client system 101, and makes a requestto return merchandise to a retailer (stage 500). E-commerce server 120may display to the end-user, based on information supplied by theend-user, a list of items of merchandise that were purchased from theretailer (stage 505). The end-user selects from the list an item ofmerchandise to return (stage 510). Thereafter, e-commerce server 120determines whether the end-user has permission to return the selectedmerchandise by requesting approval from the retailer (stage 515). If theend-user does not have permission to return the merchandise to theretailer (“No”), e-commerce server 120 sends a message to the end-userinforming her that her request is denied and the transaction stops(stage 520). Otherwise (“Yes”), the end-user has permission to returnthe merchandise to the retailer. E-commerce server 120 generates an XMLrequest based on the information supplied by the end-user and theselected merchandise (stage 525).

[0063] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server-130 through network 110 (stage 530). Web Tools APIserver 130 receives the XML request (stage 535). Next, Web Tools APIserver 130 may call a merchandise return API module 285 to generate anXML response, which includes the merchandise return label (stage 540).Web Tools API server 130 sends the XML response to e-commerce server 120through network 110 (stage 545). E-commerce server receives the XMLresponse and extracts the merchandise return label (stage 550).E-commerce server 120 sends the merchandise return label to the end-userat client system 101 through network 110 (stage 555). Client system 101displays the merchandise return label to the end-user. The end-user maythen print the merchandise return label and attach it to the packageditem. Alternatively, e-commerce server 120 may fax the merchandisereturn label to the end-user, email the merchandise return label to theend-user, or mail it to the end-user.

[0064] In an alternate example, the e-commerce entity may request andreceive a courtesy reply label instead of a merchandise return label.However, unlike the merchandise return labels, postage is not pre-paid.The courtesy reply label will be described below in detail.

[0065]FIG. 6 is a block diagram showing data exchange occurring within asystem for a rate calculation API. The rate calculation API's provideaccess to domestic and/or international rates for various shipping ratessuch as Express Mail®, Priority Mail®, and Parcel Post™, to assist inmaking shipping decisions.

[0066] As shown in FIG. 6, an end-user accesses an e-commerce server 120over a network 110 through a client system 101 and makes a request forrate information for shipping a package. In addition, the end-usersupplies information about the package to be shipped, the point ofdestination, and in the case of domestic mailing, the point of origin.E-commerce server 120 generates an XML request for the rate informationbased on the information supplied by the end-user.

[0067] For example, the XML request for domestic rates includes thefollowing tags: Input XML Tag Values Allowed Type of <RateRequest . . .Input tag Request exactly as presented. User ID . . . USERID= Use userID “userid” . . . provided with registration. Password . . . PASSWORD=Use password “password”> provided with registration. Package <PackageID=“#”> No restrictions ID Number on number or type of characters. Typeof <Service> The service type Service must be one of Requested thefollowing: “Express,” “Priority,” or “Parcel.” The API validates theentry to the service type. Origination <ZipOrigination> Input tagexactly ZIP Code ® as presented. ZIP Codes ® must be valid. Maximumcharacters allowed: 5 Destination <ZipDestination> Input tag exactly ZIPCode ® as presented. ZIP Codes ® must be valid. Maximum charactersallowed: 5 Package <Pounds> Value must be Weight in numeric. PoundsPackage weight cannot exceed 70 pounds. Parcel Post ™ packages mustweigh at least 1 pound. Package <Ounces> Value must be Weight innumeric. Ounces Package weight cannot exceed 70 pounds. Parcel Post ™packages must weigh at least 1 pound. Shipping <Container> See below forContainer valid entries. Package <Size> Valid entries are: Size“Regular,” “Large,” and “Oversize.” Machinable <Machinable> TheMachinable tag is required for Parcel Post ™ only. The value enteredmust be either “True” or “False”

[0068] For example, the XML request for international rates includes thefollowing tags: Input XML Tag Values Allowed Type of <IntlRateRequest .. . Input tag exactly Request as presented. User ID . . . USERID= Useuser ID provided “userid” . . . with registration. Password . . .PASSWORD= Use password provided “password”> with registration. Package<Package ID=“#”> No restriction on number ID Number or type ofcharacters. Weight of <Pounds> Value must be numeric. package Packageweight cannot (pounds) exceed 70 pounds. Parcel Post ™ packages mustweigh at least 1 pound. Weight of <Ounces> Value must be numeric.package Package weight cannot (ounces) exceed 70 pounds. Parcel Post ™packages must weigh at least 1 pound. Type of <MailType> The followingare valid Mail international mail types: “letters or letter packages”“other packages” “postcards or aerogrammes” “regular printed matter”“books or sheet music” “publishers' periodicals” “matter for the blind”Destination <Country> Entries must be from the USPS Country list ofvalid countries.

[0069] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110. Web Tools API server 130receives the XML request and calls a rate calculation API module 285 toprocess the request. Rate calculation API module 285 queries a shippinginformation database 150 for the requested rate information based on theXML request. Next, rate calculation API module 285 generates an XMLresponse based on results of information returned from the query. Forexample, if the request is for domestic rate information, the XMLresponse includes the following tags: Output XML Tag Comments Type ofResponse <RateResponse> Package Identification <Package Number ID=“#”>Type of Service <Service> Required Origination ZIP Code ®<ZipOrigination> Destination ZIP Code ® <ZipDestination> Package Weight<Pounds> (Pounds) Package Weight <Ounces> (Ounces) Shipping Container<Container> Package Size <Size> Postage Rate Charged <Postage> PostalZone <Zone> U.S. Postal Service Zones are used for Priority Mail ®packages over 5 lbs.

[0070] For example, if the request is for international rateinformation, the XML response includes the following tags: Output XMLTag Comments Type of Response <IntlRateResponse> Package Identification<Package ID=“#”> Number Services Identification <Service ID=“#”> Foreach package Number submitted, the available services for that packageare returned with a separate identification number. Weight of package<Pounds> (pounds) Weight of package <Ounces> (ounces) Type of Mail<MailType> Destination Country <Country> Postage Rate Charged <Postage>Service Commitments <SVCCommitments> Service Description<SvcDescription> Maximum Dimensions of <MaxDimensions> Package AllowedMaximum Weight of <MaxWeight> Package Allowed

[0071] After rate calculation API module 285 generates the XML response,Web Tools API server 130 sends the XML response to e-commerce server 120through network 110. E-commerce server 120 receives the XML response andextracts the rate information. E-commerce server 120 sends the rateinformation to the end-user at client system 101 through network 110.Client system 101 may display the rate information to the end-user.

[0072]FIG. 7 is a flowchart showing a method for providing ratecalculation information. As shown in FIG. 7, an end-user accesses ane-commerce server 120 through a client system 101 (stage 700). Theend-user makes a request to e-commerce server 120 for rate informationfor shipping a package, and supplies information about the package to beshipped, the point of destination, and in the case of domestic mailing,the point of origin (stage 710). E-commerce server 120 generates an XMLrequest for the rate information based on the information supplied bythe end-user (stage 720). Thereafter, e-commerce server 120 sends theXML request to a Web Tools API server 130 through network 110 (stage730).

[0073] Web Tools API server 130 receives the XML request (stage 740).Thereafter, Web Tools API server 130 calls a rate calculation API module285 to process the request (stage 750). Rate calculation API module 285queries a shipping information database 150 for the requested rateinformation based on the XML request. Next, rate calculation API module285 generates an XML response based on results of information returnedfrom the query. The XML response includes the requested rateinformation. Web Tools API server 130 sends the XML response toe-commerce server 120 through network 110 (stage 760). E-commerce server120 receives the XML response and extracts the rate information.E-commerce server 120 sends the rate information to the end-user atclient system 101 through network 110, (stage 760). Client system 101may display the rate information to the end-user.

[0074]FIG. 8 is a block diagram showing data exchange occurring within asystem for a tracking/confirmation API. The tracking/confirmation APIprovides for determining the delivery status of Priority Mail® andParcel Post™ mail items and for Delivery Confirmation™ of mail items. Italso provides for tracking Express Mail® shipments.

[0075] As shown in FIG. 8, an end-user accesses an e-commerce server 120over a network 110 through a client system 101 and makes a request fortracking information for a package, and supplies information about thepackage such as a unique identification code or tracking ID. A “trackingID” may also be referred to herein as a “package identification code.”E-commerce server 120 generates an XML request for thetracking/confirmation information based on the information supplied bythe end-user.

[0076] For example, the XML request for tracking/confirmationinformation includes the following tags: Input XML Tag Values AllowedType of <TrackRequest . . . Input tag exactly as Request presented. UserID . . . USERID= Use user ID provided with “userid” . . . registration.Password . . . PASSWORD= Use password provided “password”> withregistration. Package <TrackID ID=“#########”> No restrictions on numberTracking or type of characters. ID Number

[0077] Thereafter, E-commerce server 120 sends the XML request to a WebTools API server 130 through network 110. Web Tools API server 130receives the XML request and calls a tracking/confirmation API module285 to process the request. Tracking/confirmation API module 285 sendsthe XML request to a tracking server 140 through network 110, therebyforwarding the tracking data to tracking server 140. Tracking server 140queries one or more tracking databases 160 for the requested trackinginformation based on the XML request. Next, tracking server 140retrieves the tracking information from tracking database 160 and sendsit tracking/confirmation API module 285 through network 110.Tracking/confirmation API module 285 generates an XML response based onthe tracking information received from tracking server 140.

[0078] For example, the XML response includes the following tags: OutputXML Tag Type of Response <TrackResponse> Package Tracking ID Number<TrackInfo ID=“#######”> Tracking Summary Information <TrackSummary>Tracking Detail Information <TrackDetail>

[0079] After tracking information API module 285 generates the XMLresponse, Web Tools API server 130 sends the XML response to e-commerceserver 120 through network 110. E-commerce server 120 receives the XMLresponse and extracts the tracking information. E-commerce server 120sends the tracking information to the end-user at client system 101through network 110. Client system 101 may display the trackinginformation to the end-user.

[0080]FIG. 9 is a flowchart showing a method for providingtracking/confirmation information. As shown in FIG. 9, an end-useraccesses an e-commerce server 120 over network 110 through a clientsystem 101 (stage 900). The end-user makes a request to an e-commerceserver 120 for tracking/confirmation information for a package, andsupplies information about the package such as a unique identificationcode or tracking ID. (stage 910). E-commerce server 120 generates an XMLrequest for the tracking/confirmation information based on theinformation supplied by the end-user (stage 920). Thereafter, e-commerceserver 120 sends the XML request to the Web Tools API server 130 throughnetwork 110 (stage 930).

[0081] Web Tools API server 130 receives the XML request and calls atracking/confirmation API module 285 (stage 940). Tracking/confirmationAPI module 285 sends the XML request to a tracking server 140 (stage950). Tracking server 140 searches one or more tracking databases 160,and retrieves the requested tracking/confirmation information.Thereafter, tracking server 140 sends the tracking/confirmationinformation to tracking/confirmation API module 285 through network 110(stage 960). Next, tracking/confirmation API module 285 generates an XMLresponse based on the tracking/confirmation information received fromtracking server 140 (stage 970). Web-Tools API server 130 sends the XMLresponse to e-commerce server 120 through network 110 (stage 980).

[0082] E-commerce server 120 receives the XML response and extracts thetracking/confirmation information. E-commerce server 120 sends thetracking/confirmation information to the end-user at client system 101through network 110 (stage 990). Client system 101 may display thetracking/confirmation information to the end-user. Alternatively, WebTools API server 130 sends the tracking/confirmation information insteadof the XML response to e-commerce server 120 through network 110 (stage980). Thereafter, e-commerce server 120 sends the tracking/confirmationinformation to the end-user at client system 101 through network 110(stage 990).

[0083]FIG. 10 is a block diagram showing data exchange occurring withina system for a service/commitment standards API. The service/commitmentstandards API's may be used to determine the number of days (on average)it takes for a mail item to arrive at its destination. One such API isfor Priority Mail® service standards, which returns the number of daysit will take a Priority Mail® item to arrive at its destination. AnotherAPI is for standard mail service standards, which returns the number ofdays it will take a standard mail item to arrive at its destination. Yetanother API is for Express Mail® service standards, which returns theservice commitments for Monday-Friday, Saturday-Sunday, and Holidaydelivery.

[0084] As shown in FIG. 10, an end-user accesses an e-commerce server120 over a network 110 through a client system 101 and makes a requestfor service/commitment information for shipping a package from point Ato point B, and supplies information about the package to be shipped.The information supplied by the end-user may include the point of origin(A), destination (B), and type of mail service, for example, PriorityMail. E-commerce server 120 generates an XML request for theservice/commitment information based on the information supplied by theend-user.

[0085] For example, the XML request for Priority Mail® service standardsincludes the following tags: Input XML Tag Values Allowed Type of<PriorityMailRequest . . . Input tag exactly as presented. RequestUsername . . . USERID= Use user ID provided with “userid” . . .registration. Password . . . PASSWORD= Use password provided with“password”> registration. Origination <OriginZip> Origination anddestination ZIP ZIP Code ® Codes ® must be valid. Only the first 3digits of the Zip Code ® are entered between the open tag and close tag.If a 1- or 2-digit ZIP Code ® is entered, it will be treated the same asa 3-digit zip prefixed with 2 or 1 zeros, respectively. If a 4- or5-digit ZIP Code ® is entered, the last 1 or 2 digits will be ignored.Destination <DestinationZip> Origination and destination ZIP ZIP Code ®Codes ® must be valid. Only the first 3 digits of the Zip Code ® areentered between the open tag and close tag. If a 1- or 2-digit ZIPCode ® is entered, it will be treated the same as a 3-digit zip prefixedwith 2 or 1 zeros, respectively. If a 4- or 5-digit ZIP Code ® isentered, the last 1 or 2 digits will be ignored.

[0086] For example, the XML request for Parcel Post™ service standards,which is a component of standard mail services, includes the followingtags: Input XML Tag Values Allowed Type of <StandardBRequest . . . Inputtag exactly as presented. Request Username . . . USERID= Use user IDprovided with “userid” . . . registration. Password . . . PASSWORD= Usepassword provided with “password”> registration. Origination <OriginZip>Origination and destination ZIP ZIP Code ® Codes ® must be valid. Onlythe first 3 digits of the Zip Code ® are entered between the open tagand close tag. If a 1- or 2-digit ZIP Code ® is entered, it will betreated the same as a 3-digit zip prefixed with 2 or 1 zeros,respectively. If a 4- or 5-digit ZIP Code ® is entered, the last 1 or 2digits will be ignored. Destination <DestinationZip> Origination anddestination ZIP ZIP Code ® Codes ® must be valid. Only the first 3digits of the Zip Code ® are entered between the open tag and close tag.If a 1- or 2-digit ZIP Code ® is entered, it will be treated the same asa 3-digit zip prefixed with 2 or 1 zeros, respectively. If a 4- or5-digit ZIP Code ® is entered, the last 1 or 2 digits will be ignored.

[0087] For example, the XML request for Express Mail® service standardsincludes the following tags: Input XML Tag Values Allowed Type of<ExpressMailRequest . . . Input tag exactly Request as presented. UserID . . . USERID= Use user ID provided “userid” . . . with registration.Password . . . PASSWORD= Use password provided “password”> withregistration. Origination <OriginZip> Origination and ZIP Code ®destination ZIP Codes ® must be valid. If a 1- to 4-digit ZIP Code ® isentered, it will be treated as if prefixed with 4 to 1 zeros,respectively. Destination <DestinationZip> Origination and ZIP Code ®destination ZIP Codes ® must be valid. If a 1- to 4-digit ZIP Code ® isentered, it will be treated as if prefixed with 4 to 1 zeros,respectively.

[0088] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110. Web Tools API server 130receives the XML request and calls a service/commitment API module 285to process the request. Service/commitment API module 285 searches ashipping information database 150 for the requested service/commitmentinformation based on the XML request. Next, service/commitment APImodule 285 generates an XML response based on retrievedservice/commitment information.

[0089] For example, the XML response for Priority Mail® servicestandards includes the following tags: Output XML Tag Comments ResponseType <PriorityMailResponse> Origination <OriginZip> Only the first 3 ZIPCode ® digits of the ZIP Code ® are returned. Destination ZIP<DestinationZip> Only the first 3 Code ® digits of the ZIP Code ® arereturned. Average number <Days> of days it will take the package toarrive

[0090] For example, the XML response for Parcel Post™ service standardsincludes the following tags: Output XML Tag Comments Response Type<StandardBResponse> Origination ZIP <OriginZip> Only the first 3 digitsof the Code ® ZIP Code ® are returned. Destination ZIP <DestinationZip>Only the first 3 digits of the Code ® ZIP Code ® are returned. Averagenumber of <Days> days it will take the package to arrive

[0091] For example, the XML response for Express Mail® service standardsincludes the following tags: Output XML Tag Comments Response Type<ExpressMailResponse> Origination ZIP Code ® <OriginZip> Destination ZIPCode ® <DestinationZip> Monday-Friday Service <MonFriCommitment>Commitment (12:00 pm, 3:00 pm, 2-day commitment) Saturday-Sunday Service<SatSunCommitment> Holiday service is Commitment (12:00 pm, the same as3:00 pm, 2-day commit- Sunday Service ment, where applicable)Commitment.

[0092] After service/commitment API module 285 generates the XMLresponse, Web Tools API server 130 sends the XML response to e-commerceserver 120 through network 110. E-commerce server 120 receives the XMLresponse and extracts the service/commitment information. E-commerceserver 120 sends the service/commitment information to the end-user atclient system 101 through network 110. Client system 101 may display theservice/commitment information to the end-user. Alternatively, Web ToolsAPI server 130 sends the service/commitment information instead of theXML response to e-commerce server 120 through network 110. Thereafter,e-commerce server 120 sends the service/commitment information to theend-user at client system 101 through network 110.

[0093]FIG. 11 is a flowchart showing a method for providingservice/commitment standards information. As shown in FIG. 11, anend-user accesses an e-commerce server 120 through a client system 101(stage 1100). The end-user makes a request to e-commerce server 120 forservice/commitment information for shipping a package from point A topoint B, and supplies information about the package to be shipped (stage1110). The information supplied by the end-user may include the point oforigin (A), destination (B), and type of mail service, for example,Priority Mail. E-commerce server 120 generates an XML request for theservice/commitment information based on the information supplied by theend-user (stage 1120). Thereafter, e-commerce server 120 sends the XMLrequest to Web Tools API server 130 through network 110 (stage 1130).

[0094] Web Tools API server 130 receives the XML request and calls aservice/commitment API module 285 to process the request (stage 1140).Service/commitment API module 285 searches a shipping informationdatabase 150 for the requested service/commitment information based onthe XML request and retrieves the requested service/commitmentinformation. Next, service/commitment API module 285 generates an XMLresponse based on retrieved service/commitment information (stage 1150).Web Tools API server 130 sends the XML response to e-commerce server 120through network 110 (stage 1160). E-commerce server receives the XMLresponse and extracts the service/commitment information. E-commerceserver 120 sends the service/commitment information to the end-user atclient system 101 through network 110 (stage 1170). Client system 101may display the service/commitment information to the end-user.Alternatively, Web Tools API server 130 sends the service/commitmentinformation instead of the XML response to e-commerce server 120 throughnetwork 110 (stage 1160). Thereafter, e-commerce server 120 sends theservice/commitment information to the end-user at client system 101through network 110 (stage 1170).

[0095]FIG. 12 is a block diagram showing data exchange occurring withina system for a delivery confirmation service API. A deliveryconfirmation service API provides information about the delivery statusof Priority Mail® and Standard B packages, including the date, time, andZIP Code® of delivery, as well as attempted deliveries, forwarding, andreturns. This API may also provide a Delivery Confirmation™ label forPriority Mail® and Standard B, which includes Parcel Post™, BoundPrinted Matter, Special Standard, and Library Rate. The label returnedby the API may be printed by the sender of a mail item such as apackage, and attached to the package. Standard B may be referred to as“Package Services.” Special Standard may be referred to as “Media Mail.”Library Rate may be referred to as “Library Mail.”

[0096] This API provides for an end-user to request and receive adelivery confirmation barcode label for placement on either a PriorityMail® or a Standard B-mail item. An end-user may obtain, at no charge, adelivery confirmation barcode label and a package identification code(“PIC”). The PIC is a unique identifier associated with a deliveryconfirmation barcode. The delivery confirmation barcode allows a senderand a recipient of a Priority Mail® or a Standard B-mail item, such as apackage to obtain delivery confirmation information about the package'sdelivery based on the PIC. As the package travels through a mail streamsuch as that provided by the USPS, the delivery confirmation barcode isscanned and the scanned information is stored in one or more trackingdatabases. Upon delivery of the package, the delivery confirmationbarcode is scanned again, and the scanned information is stored in oneof the tracking databases.

[0097] As shown in FIG. 12, an end-user accesses an e-commerce server120 over a network 110 through a client system 101 and makes a requestfor a delivery confirmation barcode label, and supplies informationabout the package on which the delivery confirmation barcode label willbe placed. The information supplied by the end-user may includeinformation about the sender, receiver, package weight, mail servicetype, label image type, etc. The mail service type specifies, forexample, either Priority Mail® or Standard B-mail. The label image typespecifies the format of the graphic image of the delivery confirmationbarcode label. The label option indicates the type of information thatis to be included in the label. E-commerce server 120 generates an XMLrequest for the delivery confirmation barcode label based on theinformation supplied by the end-user.

[0098] For example, the XML request for a delivery confirmation barcodelabel includes the following tags: Input XML Tag Values Allowed Type of<DeliveryConfirma- Input tag exactly as Request tionV2.0Request . . .presented. User ID . . . USERID= Use user ID provided with “userid” . .. registration. Password . . . PASSWORD= Use password provided“password”> with registration. Label <Option> Either of two valuesOption allowed: “1” for Label Option #1 or “2” for Label Option #2. ForLabel Option #1, a graphic image is returned that will include abarcode, PIC number, return name and address, and delivery name andaddress. For Label Option #2, a graphic image is returned that willinclude a barcode and PIC number without the return and delivery nameand address. Printer <ImageParameters> This tag is for future use.Definition The tag is required, but there are no values to enter. Nameof <FromName> Maximum characters Sender allowed: 32 Company <FromFirm>This tag is required but Name the value is optional. Maximum charactersallowed: 32 From <FromAddress1> Use this tag for an Address apartment orsuite Line 1 number. This tag is required but the value is optional.Maximum characters allowed: 32 From <FromAddress2> Maximum charactersAddress allowed: 32 Line 2 From City <FromCity> Maximum charactersallowed: 21 From <FromState> Maximum characters State allowed: 2 FromZIP <FromZip5> Input tag exactly as Code ® presented, not all caps.Maximum characters allowed: 5 From ZIP <FromZip4> Input tag exactly asCode ® + 4 presented, not all caps. This tag is required but the valueis optional. Maximum characters allowed: 4 Name of <ToName> Maximumcharacters Recipient allowed: 38 Company <ToFirm> This tag is requiredbut Name the value is optional. Maximum characters allowed: 38 To<ToAddress1> Use this tag for an Address apartment or suite Line 1number. This tag is required but the value is optional. Maximumcharacters allowed: 38 To <ToAddress2> Maximum characters Addressallowed: 38 Line 2 To City <ToCity> Maximum characters allowed: 21 ToState <ToState> Maximum characters allowed: 2 To ZIP <ToZip5> Input tagexactly as Code ® presented, not all caps. Maximum characters allowed: 5To ZIP <ToZip4> Input tag exactly as Code ® + 4 presented, not all caps.This tag is required but the value is optional. Maximum charactersallowed: 4 Package <WeightinOunces> Value must be numeric. Weight Mail<ServiceType> Either of two values are Service allowed Type “Priority”for Priority Mail ® or “StandardB” for Parcel Post ™, Bound PrintedMatter, Special Standard, or Library Rate. Label <ImageType> Either oftwo values Image allowed: Type “TIF” or “PDF”

[0099] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110. Web Tools API server 130receives the XML request and calls a delivery confirmation service APImodule 285 to generate the requested delivery confirmation barcode labeland to associate a PIC with the delivery confirmation barcode. Deliveryconfirmation service API module 285 sends the PIC and other informationsuch as the zip codes and package weight, to a tracking server 140,where the PIC and other information is stored in a tracking database160. In addition, delivery confirmation service API module 285 generatesan XML response based on the delivery confirmation barcode label and thePIC.

[0100] For example, the XML response includes the following tags: OutputXML Tag Type of Response <DeliveryConfirmationV2.0Response> DeliveryConfirmation ™ <DeliveryConfirmationNumber> ID Number (PIC #) DeliveryConfirmation ™ <DeliveryConfirmationLabel> Label

[0101] After delivery confirmation service API module 285 generates theXML response, Web Tools API server 130 sends the XML response toe-commerce server 120 through network 110. E-commerce server 120receives the XML response and extracts the delivery confirmation barcodelabel and the PIC. Alternatively, Web Tools API server 130 may directlysend the delivery confirmation barcode label and the PIC to e-commerceserver 120 instead of generating and sending an XML response. E-commerceserver 120 sends the delivery confirmation barcode label and the PIC tothe end-user at client system 101 through network 110. Client system 101may display the delivery confirmation barcode label and/or the PIC tothe end-user.

[0102]FIG. 13 is a flowchart showing a method for providing a deliveryconfirmation label. As shown in FIG. 13, an end-user accesses ane-commerce server 120 through a client system 101 (stage 1300). Theend-user makes a request to e-commerce server 120 for a deliveryconfirmation barcode label, and supplies information about the packageon which the delivery confirmation barcode label will be placed (stage1310). The information supplied by the end-user may include informationabout the sender, receiver, package weight, mail service type, labelimage type, etc. E-commerce server 120 generates an XML request for thedelivery confirmation barcode label based on the information supplied bythe end-user (stage 1320). Thereafter, e-commerce server 120 sends theXML request to a Web Tools API server 130 through network 110 (stage1330).

[0103] Web Tools API server 130 receives the XML request and calls adelivery confirmation service API module 285 to process the request.Delivery confirmation service API module 285 generates the requesteddelivery confirmation barcode label and associates a PIC with thedelivery confirmation barcode (stage 1340). Delivery confirmationservice API module 285 sends the PIC and other information such as thezip codes and package weight, to a tracking server 140, where the PICand other information is stored in a tracking database 160 (stage 1350).In addition, delivery confirmation service API module 285 generates anXML response based on the delivery confirmation barcode label and thePIC (stage 1360). Next, Web Tools API server 130 sends the XML responseto e-commerce server 120 through network 110 (stage 1370).

[0104] E-commerce server 120 receives the XML response and extracts thedelivery confirmation barcode label and the PIC (stage 1380). E-commerceserver 120 sends delivery confirmation barcode label and the PIC to theend-user at client system 101 through network 110 (stage 990). Clientsystem 101 may display the delivery confirmation barcode label and/orthe PIC to the end-user. Alternatively, Web Tools API server 130 sendsthe delivery confirmation barcode label and the PIC instead of the XMLresponse to e-commerce server 120 through network 110 (stage 1370).Thereafter, e-commerce server 120 sends the delivery confirmationbarcode label and the PIC to the end-user at client system 101 throughnetwork 110 (stage 1380).

[0105]FIG. 14 is a block diagram showing data exchange occurring withina system for a courtesy reply label API. The courtesy reply label APIhas been specifically designed for e-commerce entities that elect tohave their customers pay the postage on a return item, but still wish toprovide a convenient return label. This API facilitates returns byallowing e-commerce entities to request and receive a courtesy replylabel for merchandise return, which the e-commerce entity can provide toits customers or end-users through any known distribution medium, suchas email, regular mail, fax, etc.

[0106] As shown in FIG. 14, an end-user accesses an e-commerce server120 over a network 110 through a client system 101 and makes a requestto return a purchased item to a retailer. E-commerce server 120 mayprovide to the end-user, based on information supplied by the end-user,a list of items that were purchased. The end-user may select from thelist one or more items to return. For purposes of this example, theend-user selects a single item. Thereafter, e-commerce server 120determines whether the end-user has permission to return the selecteditem, and if so, whether the item requires insurance for shipping. Ifthe end-user has permission to return the selected item to the retailer,e-commerce server 120 generates an XML request based on the informationsupplied by the end-user and the selected item.

[0107] The request includes, for example, the name and address of thecustomer who purchased the item, name and address of the retailer whosold the item, service type, permit information, PDU information, labelimage type, insurance value, package weight, and RMA.

[0108] For example, the XML request a courtesy reply label includes thefollowing tags: Input XML Tag Values Allowed Type of<CourtesyLabelRequest . . . Input tag exactly Request as presented. UserID . . . USERID= Use user ID provided “userid” . . . with registration.Password . . . PASSWORD= Use password provided “password”> withregistration. Customer's <FromName> Maximum characters Name allowed: 32Customer's <FromAddress1> Maximum characters Address allowed: 32Customer's <FromAddress2> Maximum characters Address allowed: 32Customer's <FromCity> Maximum characters City allowed: 21 Customer's<FromState> Maximum characters State allowed: 2 Customer's <FromZip5>Input tag exactly ZIP Code ® as presented, not all caps. Maximumcharacters allowed: 5 Customer's <FromZip4> Input tag exactly ZIP Code ®as presented, not all caps. Maximum characters allowed: 5 Retailer's<ToName> Maximum characters Name allowed: 32 Retailer's <ToAddress1>Maximum characters Address allowed: 32 Retailer's <ToAddress2> Maximumcharacters Address allowed: 32 Retailer's <ToCity> Maximum charactersCity allowed: 21 Retailer's <ToState> Maximum characters State allowed:2 Retailer's <ToZip5> Input tag exactly ZIP Code ® as presented, not allcaps. Maximum characters allowed: 5 Retailer's <ToZip4> Input tagexactly ZIP Code ® as presented, not all caps. Maximum charactersallowed: 5 Retailer <Comment> Value entry is optional. Data Norestriction on number or type of characters. Any shipping or inventoryinformation can be used with this tag. Any information entered with thistag will appear on the label. Label Image <ImageType> Either of twovalues Type allowed: “TIF” or “PDF”

[0109] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110 (stage 330). Web Tools APIserver 130 receives the XML request and calls a courtesy reply label APImodule 285 to generate the courtesy reply label based on the XMLrequest. The courtesy' reply label may, for example, be in PDF or TIFformat, which is determined by the value supplied in the Label ImageType tag. Next, courtesy reply label API module 285 generates an XMLresponse, which includes the courtesy reply label. For example, the XMLresponse includes the following tags: Output XMLTag Type of Response<CourtesyLabelResponse> Image of Courtesy Label <CourtesyLabel>

[0110] After courtesy reply label API module 285 generates the XMLresponse, Web Tools API server 130 sends the XML response to e-commerceserver 120 through network 110. E-commerce server 120 receives the XMLresponse and extracts the courtesy reply label. E-commerce server 120may send the courtesy reply label to client system 101 through network110. Client system 101 may display the courtesy reply label to theend-user. The end-user may then print the courtesy reply label andattach it to the packaged item. Alternatively, e-commerce server 120 mayfax the merchandise return label to the end-user, email the merchandisereturn label to the end-user, or mail it to the end-user.

[0111]FIG. 15 is a flowchart showing a method for providing a courtesyreply label. As shown in FIG. 15, an end-user accesses an e-commerceserver 120 through a client system 101, and makes a request to returnmerchandise to a retailer (stage 1500). E-commerce server 120 maydisplay to the end-user, based on information supplied by the end-user,a list of items of merchandise that were purchased from the retailer(stage 1505). The end-user selects from the list an item of merchandiseto return (stage 1510). Thereafter, e-commerce server 120 determineswhether the end-user has permission to return the selected merchandiseby requesting approval from the retailer (stage 1515). If the end-userdoes not have permission to return the merchandise to the retailer(“No”), e-commerce server 120 sends a message to the end-user informingher that her request is denied and the transaction stops (stage 1520).Otherwise (“Yes”), the end-user has permission to return the merchandiseto the retailer. E-commerce server 120 generates an XML request based onthe information supplied by the end-user and the selected merchandise(stage 1525).

[0112] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110 (stage 1530). Web Tools APIserver 130 receives the XML request and calls a courtesy reply label APImodule 285 to process the request (stage 1535). Next, courtesy replylabel API module 285 generates an XML response, which includes thecourtesy reply label (stage 1540). Web Tools API server 130 sends theXML response to e-commerce server 120 through network 110 (stage 1545).E-commerce server 120 receives the XML response and extracts thecourtesy reply label (stage 1550). E-commerce server 120 sends thecourtesy reply label to the end-user at client system 101 throughnetwork 110 (stage 1555). Client system 101 displays the courtesy replylabel to the end-user. The end-user may then print the courtesy replylabel, attach it to the packaged item, and apply postage to the package.Alternatively, e-commerce server 120 may fax the courtesy reply label tothe end-user, email the courtesy reply label to the end-user, or mail itto the end-user.

[0113]FIG. 16 is a block diagram showing data exchange occurring withina system for an address information service API. The address informationservice API's provide access to standard address formats (“addressinformation”) and may include, but is not limited to, a city/statelookup API, ZIP code lookup API, and address standardization API. TheZIP code lookup API receives as input a given city and state code andreturns a corresponding ZIP code. The city/state lookup API receives asinput a given ZIP code and returns the city and state corresponding tothe ZIP code. The address standardization API receives as input anaddress and corrects errors in the address, such as errors in street orcity names and/or errors in the ZIP code, if any.

[0114] E-commerce entities needing to validate address informationprovided by an e-shopper or end-user may use one or more of the addressinformation service API's to check the address information provided bythe e-shopper or end-user. Alternatively, an end-user may request thee-commerce entity to provide a Zip code for a given city and state. Thee-commerce entity may send a request to the ZIP code lookup API, whichreturns the requested ZIP code to the e-commerce entity.

[0115] As shown in FIG. 16, an end-user accesses an e-commerce server120 over a network 110 through a client system 101 and makes a requestfor address information, such as the city and state information for aZIP code specified by the end-user. E-commerce server 120 generates anXML request for the address information based on the informationsupplied by the end-user.

[0116] For example, the XML request for city/state lookup includes thefollowing tags: Input XML Tag Type of Request <CityStateLookupRequest .. . User ID . . . USERID=“userid” . . . Password . . .PASSWORD=“password”> ZIP Code Lookup Number¹ <ZipCode ID=‘#’> ZIP Codeof City or State <Zip5>

[0117] For example, the XML request for ZIP code lookup includes thefollowing tags: Input XML Tag Type of Request <ZipCodeLookupRequest . .. User ID . . . USERID=“userid” . . . Password . . .PASSWORD=“password”> Address Lookup Number¹ <Address ID=‘#’> Name ofFirm² <FirmName> Address Line 1³ <Address1> Address Line 2³ <Address2>City <City> State <State>

[0118] For example, the XML request for address standardization lookupincludes the following tags: Input XML Tag Type of Request<AddressValidateRequest... User ID ...USERID=“userid”... Password...PASSWORD=“password”> Address Verification Number¹ <Address ID=‘#’>Name of Firm² <FirmName> Address Line 1 <Address1> Address Line 2<Address2> City <City> State <State> ZIP Code ® <Zip5> ZIP Code ® + 4<Zip4>

[0119] Thereafter, e-commerce server 120 sends the XML request to a WebTools API server 130 through network 110. Web Tools API server 130receives the XML request and calls an address information service APImodule 285 to process the request. Address information service APImodule 285 searches a shipping information database 150 for therequested address information based on the XML request. Shippinginformation database 150 may include, for example, an address database.Next, address information service API module 285 generates an XMLresponse based on retrieved, address information.

[0120] For example, the XML response for city/state lookup includes thefollowing tags: Output XML Tag Type of Response<CityStateLookupResponse... ZIP Code Lookup Number <ZipCode ID=‘#’> ZIPCode of City or State <Zip5> City for Requested ZIP Code ® <City> Statefor requested ZIP Code ® <State>

[0121] For example, the XML response for ZIP code lookup includes thefollowing tags: Output XML Tag Type of Response <ZipCodeLookupResponse>Address ID Number <Address ID=‘#’> Name of Firm* <FirmName> Address Line1* <Address1> Address Line 2* <Address2> City <City> State <State> ZIPCode <Zip5> ZIP Code + 4 <Zip4>

[0122] For example, the XML response for address standardization lookupincludes the following tags: Output XML Tag Type of Response<AddressValidateResponse> Address Verification Number <Address ID=‘#’>Name of Firm* <FirmName> Address Line 1 <Address1> Address Line 2<Address2> City <City> State <State> ZIP Code ® <Zip5> ZIP Code ® + 4<Zip4>

[0123] After address information service API module 285 generates theXML response, Web Tools API server 130 sends the XML response to thee-commerce server 120 through network 110. E-commerce server receivesthe XML response and extracts the address information. E-commerce server120 sends the address information to the end-user at client system 101through network 110. Client system 101 may display the addressinformation to the end-user. Alternatively, Web Tools API server 130sends the address information instead of the XML response to e-commerceserver 120 through network 110. Thereafter, e-commerce server 120 sendsthe address information to the end-user at client system 101 throughnetwork 110.

[0124]FIG. 17 is a flowchart showing a method for providing addressinformation. As shown in FIG. 17, an end-user accesses an e-commerceserver 120 through a client system 101 (stage 1700). The end-user makesa request to e-commerce server 120 for address information, such as thecity and state information for a ZIP code specified by the end-user(stage 1710). E-commerce server 120 generates an XML request for theaddress information based on the information supplied by the end-user(stage 1720). Thereafter, e-commerce server 120 sends the XML request toWeb Tools API server 130 through network 110 (stage 1730).

[0125] Web Tools API server 130 receives the XML request and calls anaddress information service API module 285 to process the request (stage1740). Address information service API module 285 searches a shippinginformation database 150 for the requested address information based onthe XML request and retrieves the requested address information.Shipping information database 150 may include, for example, an addressdatabase. Next, address information service API module 285 generates anXML response based on the retrieved address information (stage 1750).Web Tools API server sends the XML response to e-commerce server 120through network 110 (stage 1760). E-commerce server receives the XMLresponse and extracts the address information. E-commerce server 120sends the address information to the end-user at client system 101through network 110 (stage 1770). Client system 101 may display theaddress information to the end-user. Alternatively, Web Tools API server130 sends the address information instead of the XML response toe-commerce server 120 through network 110 (stage 1160). Thereafter,e-commerce server 120 sends the address information to the end-user atclient system 101 through network 110 (stage 1170).

[0126] In another example, an end-user accesses an e-commerce server 120through a client system 101. The end-user provides a delivery address toe-commerce server 120 for the shipment of a purchased item. E-commerceserver 120 generates an XML request for the validation of the addressinformation. Thereafter, e-commerce server 120 sends the XML request toa Web Tools API server 130 through network 110.

[0127] Web Tools API server 130 receives the XML request and calls anaddress information service API module 285 to process the request.Address information service API module 285 searches a shippinginformation database 150 for address information based on the XMLrequest, and using information from the address, corrects errors oromissions to the address information in the XML request. Shippinginformation database 150 may include, for example, an address database.Next, address information service API module 285 generates an XMLresponse based on the address information and corrections to the addressinformation.

[0128] Web Tools API server sends the XML response to the e-commerceserver 120 through network 110. E-commerce server 120 receives the XMLresponse and extracts the address information. E-commerce server 120generates an XML request for a delivery confirmation label based on theaddress information. Thereafter, e-commerce server 120 sends the XMLrequest to a Web Tools API server 130 over network 110.

[0129] Web Tools API server 130 receives the XML request and calls adelivery confirmation service API module 285 to generate the requesteddelivery confirmation barcode label and to associate a PIC with thedelivery confirmation barcode. Delivery confirmation service API module285 sends the PIC and other information such as the zip codes andpackage weight, to a tracking server 140, where the PIC and otherinformation is stored in a tracking database 160. In addition, deliveryconfirmation service API module 285 generates an XML response based onthe delivery confirmation barcode label and the PIC. Web Tools APIserver 130 sends the XML response to e-commerce server 120 throughnetwork 110. E-commerce server 120 may send the delivery label to theend-user using any known delivery method.

[0130] Other embodiments of the invention will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein. It is intended that the specificationand examples be considered as exemplary only, with a true scope andspirit of the invention being indicated by the following claims.

What is claimed is:
 1. A method for providing shipping servicesinformation over a network, comprising: providing instructions to afirst server from a second server which permits the first server toaccess the shipping services information residing on the second serverover the network; receiving a request from a client for the shippingservices information at the second server through the first server; andproviding the requested shipping services information from the secondserver to the client through the first server.
 2. The method of claim 1wherein the shipping services information is provided in a format toproduce a label.
 3. The method of claim 2 wherein the label includesforwarding information thereon.
 4. The method of claim 3 wherein theforwarding information includes at least one of addressing information,barcode information, return authorization number and an indication ofpre-paid postage.
 5. The method of claim 1 wherein the shipping serviceinformation includes shipping rates information.
 6. The method of claim1 wherein the shipping service information includes at least one oftracking information and confirmation information.
 7. The method ofclaim I wherein the shipping service information includes at least oneof service standards and commitment standards information for a shipmentoption.
 8. The method of claim 1 wherein the shipping serviceinformation includes standard address formats information.
 9. The methodof claim 1 wherein the instructions may operate on any of a plurality oftypes of operating systems which reside on the first server.
 10. Amethod for providing shipping services information over a network,comprising: providing instructions to a first server over the networkfrom a second server which permits the first server to access theshipping services information residing on the second server; receiving arequest from the first server over the network to the second server forthe shipping services information; retrieving the requested shippingservices information; and sending the retrieved shipping servicesinformation from the second server to the first server over the network.11. The method of claim 10 wherein the request is generated by the firstserver based on one or more of the instructions provided by the secondserver.
 12. The method of claim 10 wherein the step of retrievingcomprises retrieving the requested shipping services information fromone or more databases.
 13. The method of claim 10 wherein the shippingservices information is provided in a format to produce a courtesy replylabel.
 14. The method of claim 10 wherein the shipping servicesinformation is provided in a format to produce a merchandise returnlabel.
 15. The method of claim 10 wherein the shipping servicesinformation is provided in a format to produce a delivery confirmationbarcode label.
 16. A system for providing shipping services informationover a network, comprising: means for providing instructions to a firstserver from a second server which permits the first server to access theshipping services information residing on the second server over anetwork; means for receiving a request from a client for the shippingservices information at the second server through the first server; andmeans for providing the requested shipping services information from thesecond server to the client through the first server.
 17. A system forproviding shipping services information over a network, comprising:means for providing instructions to a first server over a network from asecond server which permits the first server to access the shippingservices information residing on the second server; means for receivinga request from the first server over the network to the second serverfor the shipping services information; means for retrieving therequested shipping services information; and means for sending theretrieved shipping services information from the second server to thefirst server over the network.
 18. A system for providing shippingservices information over a network, comprising: a module for providinginstructions to a first server from a second server which permits thefirst server to access the shipping services information residing on thesecond server over a network; a module for receiving a request from aclient for the shipping services information at the second serverthrough the first server; and a module for providing the requestedshipping services information from the second server to the clientthrough the first server.
 19. A system for providing shipping servicesinformation over a network, comprising: a module for providinginstructions to a first server over a network from a second server whichpermits the first server to access the shipping services informationresiding on the second server; a module for receiving a request from thefirst server over the network to the second server for the shippingservices information; a module for retrieving the requested shippingservices information; and a module for sending the retrieved shippingservices information from the second server to the first server over thenetwork.